/*
 * Copyright © 2012, United States Government, as represented by the
 * Administrator of the National Aeronautics and Space Administration.
 * All rights reserved.
 * 
 * The NASA Tensegrity Robotics Toolkit (NTRT) v1 platform is licensed
 * under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0.
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
*/

/// Rand seeding simular to the evolution and terrain classes. 
#ifdef _WIN32

//  Windows
#define rdtsc  __rdtsc

#else

//  For everything else
unsigned long long rdtsc(){
    unsigned int lo,hi;
    __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
    return ((unsigned long long)hi << 32) | lo;
}

#endif

/**
 * @file tgUtil.cpp
 * @brief Contains the definition of class tgUtil and overloaded
 * operator<<() free functions.
 * @copyright Copyright (C) 2014 NASA Ames Research Center
 * @author Ryan Adams and Brian Mirletz
 * $Id$
 */

#include "tgUtil.h"

void tgUtil::seedRandom()
{
    srand(rdtsc());
}

void tgUtil::seedRandom(int seed)
{
    srand(seed);
}

